<?php
class ImagesController extends AppController {

	var $name = 'Images';
	var $components = array('Attachment');
	var $helpers = array('Html','Form','Javascript');
	
	
	#Agrega una nueva imagen a un owner, siempre y cuando no se halla superado el limite
	function add($model,$ownerId = null){
		if (!empty($this->data)){
			$file_path = $this->Attachment->upload($this->data['Image']['Attachment'],$model);
			if($images = $this->Image->save_image($this->data['Image']['model'],$this->data['Image']['owner_id'],$file_path)){
				$this->Session->setFlash(__('La imagen se a guardado con exito.', true));
			}else{
				$this->Session->setFlash(__('Error al guardar la imagen. Intente nuevamente', true));
			}
		}
		$this->set('model',$model);
		$this->set('ownerId',$ownerId);
	}
	
	
	
	#Permite editar los datos extra de un owner	
	#Muestra uno o todas las imagenes de de owner,
	# si el file se deja vacio trae todas
	# sino solo trae la que tenga el mismo filename.
	# todas las imagenes vienen en un tag html 
	function view($model,$ownerId = null,$file = null){
		$image = $this->Image->GetImages($model,1);
	}
	
	# Borra, si viene vacio $file, al owner y si viene cargado file, a la imagen que tenga el mismo nombre
	# luego de borrar, borra fisicamente las imagenes
	function delete ($model=null,$ownerId = null, $file = null){
		if (!empty($file) && !empty($ownerId)){
			$image = $this->Image->get_images($model,$ownerId);
			foreach($image['files'] as $k=>$imgFile){
				if ($file == $imgFile){
					unset($image['files'][$k]);
					$this->Attachment->delete_files($file,$model);
					$this->Image->set_images($image);
					$this->redirect($this->referer());
				}
			}
			
		}
		
		
	}
	
	#orden mueve hacia arriba
	function moveup($model=null,$ownerId = null, $file = null){
		if (!empty($file) && !empty($ownerId) && !empty($file)){
			$image = $this->Image->get_images($model,$ownerId);
			foreach($image['files'] as $k=>$imgFile){
				if (($file == $imgFile)&&($k != 0)){
					$tmp = $image['files'][$k-1]; 
					$image['files'][$k-1] = $imgFile;
					$image['files'][$k] = $tmp;
				}
			}
			$this->Image->set_images($image);
		}
		$this->redirect(array('plugin'=>(mb_strtolower($image['model'])),'controller'=>$image['model'],'action'=>'index'));
	}

	#orden mueve hacia abajo
	function movedown($model=null,$ownerId = null, $file = null){
		if (!empty($file) && !empty($ownerId) && !empty($file)){
			$image = $this->Image->get_images($model,$ownerId);
			foreach($image['files'] as $k=>$imgFile){
				if (($file == $imgFile)&&($k != count($image['files'])-1)){
					$tmp = $image['files'][$k+1]; 
					$image['files'][$k+1] = $imgFile;
					$image['files'][$k] = $tmp;
				}
			}
			$this->Image->set_images($image);
		}
		$this->redirect(array('plugin'=>(mb_strtolower($image['model'])),'controller'=>$image['model'],'action'=>'index'));
	}
}
?>